COURSE OUTLINE
Instructor:  Kenneth L Moore Semester/Session: Fall 2007

 

                                                                                                                                                                         

Course Number:       CIT111 

Course Title:             Introduction to Programming: Java

Course Credits:        4

Lecture hours:          4                                  Lab hours: 0                    Other hours: 0   

Pre-requisite(s):       Basic skills using a personal computer and operating system; high
school Algebra; and eligibility for DVS101 and ENG100
.

 

Co-requisite(s):         None

Course Description:

This course is an introduction to program design, analysis, and programming fundamentals using the Java language.  Topics include the software development process, problem solving techniques, simple language basics, data representation and storage, program control structures, objects and classes, event handling, arrays, HTML and applets.

 

Learning Outcomes:   

Upon the completion of the activities in this course, the student should be able to:

 

·          Demonstrate an understanding of the Java program development environment

·          Use the Java programming language to design and implement programs, both applications and applets, on a computer to solve problems

·          Demonstrate an understanding of basic problem-solving techniques (problem specifications, pseudo code, and incremental development/testing) and apply them to novel situations that are relatively similar to models introduced in the course.

·          Demonstrate an understanding of data storage and memory concepts

·          Demonstrate an understanding and use of primitive data types and object reference types

·          Demonstrate an understanding and use of variables, arithmetic and Boolean expressions, and assignment operators

·          Demonstrate an understanding of the logical structures of sequence, repetition, and selection

·          Apply the Java language to implement the logical structures of sequence, repetition, and selection

·          Demonstrate an understanding and use of a subset of standard predefined methods and classes contained in the Java API library

·          Use a browser to examine online Java library documentation

·          Create and apply simple graphical user interfaces (GUI) using Swing GUI components

·          Demonstrate an understanding and apply mechanisms to pass data between methods

·          Demonstrate an understanding of object-based programming

·          Apply Java language elements to create new classes, user-defined methods, and objects

·          Demonstrate an understanding of the array data structure and apply array processing methods in computer programs

·          Demonstrate an understanding and use of HTML to create simple personal Web pages containing, text, images, hyperlinks and applets

·          Apply appropriate programming terminology

·          Demonstrate an understanding of clear and effective programming by using correct programming style and providing appropriate documentation

 

 

 

 

                                                              Section    Dates          Days         Time        Room

Class Section(s) Time & Location:     BC02       5/21 – 7/27    MW       10-11:40      587

 

Instructor:

Kenneth L Moore

Office Hours: 

Before and after class

 

 

Office:

Boyce Campus: N457

E-Mail Address:

kmoore@ccac.edu  - best instructor contact method

           

Materials and Resources:                                   

Required Text(s):

A Guide To Programming In JAVA, Lawrenceville Press, ISBN 1-58003-121-8  

Required Materials:

To develop Java programs, students need a “relatively recent” PC and 2 software programs ( both free ).
1) The Java software development kit (J2SE ) available on CD that accompanies the text and
2) JCreator ( an integrated development environment ) , available on the Internet, to write and test programs.
Students need an Internet browser to access Web-based course content and
should also have a removable USB flash drive  - minimum of 128M for data storage.

 

 

Teaching Methods:

Lecture, homework, in class programming.

Preparation Time:
Expect to spend 8 hours a week outside of class for preparation and homework.

 

Evaluation Plan:

Students are evaluated on  the results obtained from doing homework assignment,  short quizzes and 2  major exams.  Students typically take the 2 proctored  exams at CCAC’s testing sites.   Quizzes are accessible from home and immediate feedback is provided. Specific assessment items are:
 

2 Exams  (Mid-Term and Final) - ( 70% ) 
Weekly homework (20%)

Quizzes (10%)

Final Grade Breakdown:  A: 90 - 100%,  B: 80 - 89%,  C: 70 - 79%, D: 60 - 69%, F:  0-59%

Instructors Statement: A recent survey of employment in software engineering has shown 142,000 new jobs next year.  There will be 39,000 new graduates to fill these positions.  In addition, 1/3 of the current software workforce will be retiring in the next 5 years (the baby boomers). 

 

Your participation in a CMU research project will be required this semester.  It consists of filling out two 10 min surveys.

http://www.surveymonkey.com/s.aspx?sm=POOWkmP22bviC8h0LL6Ltg_3d_3d  - pre-survey

http://www.surveymonkey.com/s.aspx?sm=l8VK4KYmyrkZBCDl11K7ww_3d_3d - post survey

 

 

 

Other Policies and Procedures:
  

Plagiarism and Cheating
Each student must independently complete all assignments.   It is ok to discuss assignments with another student or a tutor, but the submitted work should be your own. If there is any reason to suspect that several people collaborated on an individual assignment, all involved will receive an F for the semester. If you have trouble with an assignment, you may ask for advice from the instructor, from a tutor, or from a friend. However, you are expected to do your own typing and create your own document. Any form of cheating on an exam or quiz will result in an F for the semester. Please read the school’s policy on cheating in your CCAC Student Handbook. 

 

Students with Disabilities:

The Community College of Allegheny County makes every effort to provide reasonable accommodations for students with disabilities.  Questions about services and procedures for students with disabilities should be directed to the Office of Supportive Services at your campus.

 

 

 

 

 

 

 


Outline:

 

Unit
(week)

Topic and
Topic Outline

Assessments

Resources

Unit 1
(week 1)

Aug 20

An Introduction to Computers

Applets and Web Programming

·   Computer hardware, input devices, peripheral devices, output devices (p 1-2)

·   Operating systems (p 2-4)

·   Programming languages (p 5-6)

·   Networks (p 6-9)

·   Number systems (p 9-10)

·   Storing data in memory (p 10-11)

·   Files and storage devices (p 11-12)

·   Telecommunications (p 14)

·   Internet (p 15-18)

·   Privacy issues (p 18-20)

·   Protecting software and data (p 21)

·   Social and ethical implications of computer use (p 22)

·   World Wide Web terminology (p 35)

·   Impact of programming on the WWW community (p 35-36)

·   HTML (p 36-37, 45-48)

·   JavaScript (38-41)

·   Java applets (p 41-42)

·  HTML style sheets (p 49-50)

·  None

 

·  Text pages 1-34 (Chapter 1)

·  Text pages 35-58 (Chapter 2)

 

Unit 2
(week 2)

Aug 27

Introducing Java

·   Introduce object-oriented concepts (p 59)

·   Objects, classes, and packages (p 59-60)

·   Creating and executing a Java application (p 60-61)

·   Console output (System.out.print/println) (p 63-64)

·   Code conventions (p 65)

·   Algorithm design (p 66)

 

·   

·  Text pages 59-76 (Chapter 3)

 

Unit 3
(week 3)

Sep 3

Variables and Constants

·   Primitive types vs. objects (p 79-80)

·   Variable declarations (p 77-80)

·   Classes (abstract data type) (p 80)

·   Constant declarations (p 87)

·   Simple data types (int, boolean, double) (p 77-79)

·   Java packages (p 80-81)

·   Obtain a value from the user (p 81-82)

·   Numeric expressions (p 83)

·   Type-casting (p 84)

·   Syntax, run-time, and logic errors (exceptions) (p 88-89)

·   Read and understand a problem description, purpose, and goals (p 90-93)

 

·   

·  Text pages 77-104 (Chapter 4)

 

Unit 4
(weeks 4, 5)

Sep 10
Sep 17

Conditional Control Structures

·   Conditional control structures (if, switch) (p 105-108)

·   Generating random numbers (Math.random()) (p 109-111)

·   Logical operators (p 111-112)

·   The Math class (Math.abs(), Math.pow(), Math.sqrt()) (p 113)

 

 

·  Text pages 105-130 (Chapter 5)

 

Unit 5
(week 6, 7)

Sep 24
Oct 1

Loop Structures and Strings

·   Iteration (while, for) (p 131, 135)

·   Counters and accumulators (p 133)

·   Debugging techniques including using a debugger, adding extra output statements, and hand-tracing code (p 136-137)

·   The String class (p 138-141)

 

 

·  Text pages 131-156 (Chapter 6)

 

Week 8

Oct 8

Review Chapters 1 through 6

·  Midterm Examination

 

Unit 6
(week 9,10)

Oct 15

Oct 22

Methods

·   Methods (p 157-160)

·   Top-down development (p 157)

·   Procedural abstraction (p 157)

·   Method declarations (p 159-160)

·   Parameter declarations (p 160-161)

·   Pre- and post-conditions (p 164-165)

·  Identify boundary cases and generate appropriate test data (p 168)

 

 

·   

·  Text pages 157-178 (Chapter 7)

 

 


 

Unit 7
(week 11)

Oct 29

Classes and Object-Oriented Programming

·   Data abstraction and encapsulation (p 179-182)

·   Design and implement a class (p 180-182)

·   Functional decomposition (p 180)

·   Encapsulation and information hiding (p 182)

·   The Object class (p 185-186)

·   Inheritance (p 186-187)

·   The has-a class relationship (p 187)

·   Object-oriented development (p 191-192)

 

 

·  Text pages 179-210 (Chapter 8)

 

 

Unit 8
(week 12,13)

Nov 5

Nov 12

Arrays

·   One-dimensional arrays (p 237-238)

·   Traversing an array (p 238, 251)

·   Array element insertions and deletions (p 238, 265, 250-251)

·   Arrays with meaningful indexes (p 238-239)

·   Sequential search (p 244)

·   Two-dimensional arrays (p 245-249)

·   The ArrayList class (p 250-251)

·   Wrapper classes (p 251-253)

·   Autoboxing and auto-unboxing (p 253)

 

 

·  Text pages 237-272 (Chapter 10)

 

Unit 9
(week 14,15)

Nov 26

Dec 3

GUIs and Event-Driven Programming

·   Graphical user interfaces (p 273)

·   The Swing Package (p 273)

·   Event-driven applications (p 273-277)

·   GUI layout and controls (p 279-292)

·  Nested classes (p 293)

 

 

·  Text pages 273-308 (Chapter 11)

 

 

Week 16

Dec 10

Review chapters covered throughout the semester

·  Final Examination

 

 

 

 

Note that this schedule may be modified based on class progress.